/*

1 每一行 数据 拿出来用  #name

    <template #name="{ text }">
      <a>{{ text }}</a>
    </template>

2  页头和页脚
   <template #title>Header</template>
   <template #footer>Footer</template>

3 columns -- slots 有插槽  就可以插

const columns = [
  {
    dataIndex: 'name',
    key: 'name',
    slots: {
      title: 'customTitle',-- <template #customTitle>  插在 表头      text 为数据
      customRender: 'name',-- <template #name="{ text }"> 插在  内容  text 为数据
    },
  },

固定 列  一般定义为  action

fixed: 'right',
slots: {
      customRender: 'action',
    },

    <template #action>
      <a>action</a>
    </template>

4 customRender 函数 返回 值 改造 dataIndex 数据
  不是函数  就是 用来 # 插的

!!  v3取代了 上面的
表头 #headerCell="{title, column}"              -- column.dataIndex === 'action' ...
内容 #bodyCell="{text, record, index, column}"  -- column.dataIndex === 'action' ...

自动遍历每一行
index 每一行索引
text  每一行 的 dataSource--dataSource[index]
record 每一行 的 dataSource--dataSource[index]
column 每一个 单元格  对应 columns[index]
v-if="column.key === 'name'"     v-else-if="column.key === 'tags'"

record  对应 dataSource
        <a>
          {{ record.name }}
        </a>


5 usePagination
 不能在 函数中调用  不知为啥
 初始化调用
 之后再次调用 run  传入 改变条件即可

 参数 1 API 请求  p即为传入的defaultParams
 参数 2 defaultParams API 参数 数组
       formatResult  返回的数据格式  res. 修改
       pagination 中 参数  根据 defaultParams 中数据修改
const { data, run, loading, current, pageSize, total  } = usePagination(
	p => selectSubListData(p),
	{
		defaultParams: [parameter],
    解构的 data = { { data, total } } 所以取值时要注意  data?.value?.data
		formatResult: ({ data, total }) => ({ data, total }),
		pagination: {
			currentKey: 'pageNo',
			pageSizeKey: 'pageSize',
      totalKey: 'total', // 取值 data:{ data, total } 从 { 中开始 }
		},
	}
)

// ref有数据  但是 .value 为 undefined 通过这种方式--模版使用数据
const dataSource = computed(() => data?.value?.data || [])

  run  中传入  parameter 改变的

	run({
		pageSize: pag.pageSize,
		pageNo: pag?.current,
		sortField: sorter.field,
		sortOrder: sorter.order,
		...filters,
	})


6
7
8

*/
